<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>layuiAdmin 角色管理</title>
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport"
    content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  <link rel="stylesheet" href="__PUBLIC__/layuiadmin/layui/css/layui.css" media="all">
  <link rel="stylesheet" href="__PUBLIC__/layuiadmin/style/admin.css" media="all">
</head>

<body>

  <div class="layui-fluid">
    <div class="layui-card">
      <div class="layui-card-body">
        <div style="padding-bottom: 10px;">
          <button class="layui-btn layuiadmin-btn-role" data-type="add">添加</button>
        </div>

        <table id="LAY-user-back-role" lay-filter="LAY-user-back-role"></table>
        <script type="text/html" id="buttonTpl">
          {{#  if(d.status == 1){ }}
            <button class="layui-btn layui-btn-xs" lay-event="status">已开启</button>
          {{#  } else { }}
            <button class="layui-btn layui-btn-primary layui-btn-xs" lay-event="status">未开启</button>
          {{#  } }}
        </script>
        <script type="text/html" id="table-useradmin-admin">
          <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
          <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
        </script>
      </div>
    </div>
  </div>

  <script src="__PUBLIC__/layuiadmin/layui/layui.js"></script>
  <script>
    layui.config({
      base: '__PUBLIC__/layuiadmin/' //静态资源所在路径
    }).extend({
      index: 'lib/index' //主入口模块
    }).use(['index', 'table'], function () {
      var $ = layui.$
        , form = layui.form
        , table = layui.table;

      //角色管理
      table.render({
        elem: '#LAY-user-back-role'
        , url: "{:U('Admin/Role/index',array('render'=>'1'))}" //接口
        , cols: [[
          { field: 'id', width: 80, title: 'ID', sort: true }
          , { field: 'role_name', title: '角色名' }
          , { field: 'status', title: '是否开启', templet: '#buttonTpl', minWidth: 80, align: 'center' }
          , { field: 'create_time', title: '创建时间' }
          , { title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin' }
        ]]
        , text: '对不起，加载出现异常！'
      });

      //监听工具条
      table.on('tool(LAY-user-back-role)', function (obj) {
        var data = obj.data;
        if (obj.event === 'del') {
          layer.confirm('确定删除此角色？', function (index) {
            obj.del();
            $.ajax({
              url: "{:U('Admin/Role/del')}",
              type: 'post',
              data: {id:data.id},
              success: function (re) {
                if (re.code == 0) {
                  layer.msg(re.msg, { icon: 6 });
                  // table.reload('LAY-user-back-manage'); //数据刷新
                  obj.del();
                  layer.close(index); //关闭弹层
                } else {
                  layer.msg(re.msg, { icon: 5 });
                }
              }
            });
          });
        } else if (obj.event === 'edit') {
          var url = "{:U('Admin/Role/edit',array('id'=>'data.id'))}";
          url = url.replace("data.id", data.id);
          var tr = $(obj.tr);
          layer.open({
            type: 2
            , title: '编辑角色'
            , content: url
            , area: ['600px', '600px']
            , btn: ['确定', '取消']
            , yes: function (index, layero) {
              var iframeWindow = window['layui-layer-iframe' + index]
                , submit = layero.find('iframe').contents().find("#LAY-user-role-submit");

              //监听提交
              iframeWindow.layui.form.on('submit(LAY-user-role-submit)', function (data) {
                var field = data.field; //获取提交的字段

                //提交 Ajax 成功后，静态更新表格中的数据
                $.ajax({
                  url: "{:U('Admin/Role/edit')}",
                  type: 'post',
                  data: field,
                  success: function (re) {
                    if (re.code == 0) {
                      layer.msg(re.msg, { icon: 6 });
                      table.reload('LAY-user-back-role');
                      layer.close(index); //关闭弹层
                    } else {
                      layer.msg(re.msg, { icon: 5 });
                    }
                  }
                });
              });

              submit.trigger('click');
            }
            , success: function (layero, index) {

            }
          })
        } else if (obj.event === 'status') {
          //提交 Ajax 成功后，静态更新表格中的数据
          var id = data.id;
          var role_name = data.role_name;
          var status = data.status==1?0:1;
          $.ajax({
            url: "{:U('Admin/Role/edit')}",
            type: 'post',
            data: {id:id,status:status,type:'status'},
            success: function (re) {
              if (re.code == 0) {
                layer.msg(re.msg, { icon: 6 });
                table.reload('LAY-user-back-role');
                layer.close(index); //关闭弹层
              } else {
                layer.msg(re.msg, { icon: 5 });
              }
            }
          });
        }
      });

      //事件
      var active = {
        add: function () {
          layer.open({
            type: 2
            , title: '添加新角色'
            , content: "{:U('Admin/Role/add')}"
            , area: ['600px', '600px']
            , btn: ['确定', '取消']
            , yes: function (index, layero) {
              var iframeWindow = window['layui-layer-iframe' + index]
                , submit = layero.find('iframe').contents().find("#LAY-user-role-submit");

              //监听提交
              iframeWindow.layui.form.on('submit(LAY-user-role-submit)', function (data) {
                var field = data.field; //获取提交的字段

                //提交 Ajax 成功后，静态更新表格中的数据
                $.ajax({
                  url: "{:U('Admin/Role/add')}",
                  type: 'post',
                  data: field,
                  success: function (re) {
                    if (re.code == 0) {
                      layer.msg(re.msg, { icon: 6 });
                      table.reload('LAY-user-back-role');
                      layer.close(index); //关闭弹层
                    } else {
                      layer.msg(re.msg, { icon: 5 });
                    }
                  }
                });
              });

              submit.trigger('click');
            }
          });
        }
      }
      $('.layui-btn.layuiadmin-btn-role').on('click', function () {
        var type = $(this).data('type');
        active[type] ? active[type].call(this) : '';
      });
    });
  </script>
</body>

</html>